#!/usr/bin/python
# _*_ coding: utf-8 _*_

"""
不相关段落的过滤（统计的部分匹配得分为0），如"扫二维码下载作业帮"等

@author: Qing Liu, sunnymarkliu@163.com
@github: https://github.com/sunnymarkLiu
@time  : 2019/4/28 22:41
"""
import sys
import json

norm_map = {
    u"，": u",", u"。": u".", u"！": u"!",
    u"？": u"?", u"；": u";",
    u"（": u"(", u"）": u")",
    u"【": u"[", u"】": u"]",
    u"“": u"\"", u"”": u"\""
}
def normalize(segment_text):
    text = '<mrc_splitter>'.join(segment_text)
    for zh_token in norm_map:
        if zh_token in text:
            text = text.replace(zh_token, norm_map[zh_token])
    return text.split('<mrc_splitter>')


not_related_para_dict = {
    '百度经验:jingyaurl_25393m', '贴吧页面意见反馈 违规贴吧举报反馈通道 贴吧违规信息处理公示', '扫二维码下载作业帮', '下载贴吧APP看高清直播、视频!', '登录百度帐号', '确定举报此问题',
'指导意见：', '病情分析：', '答', '关注已关注', '百度经验 > 生活/家居 > 生活常识', '报告,这不是个问题', '内容:', '您需要登录后才可以回帖 登录 | 注册', '精彩评论,马上呈现.', '正在加载.',
'专家在线免费咨询', '提问', 'PC占比', '播放量数据:', '移动占比', '百度经验 > 健康/养生 > 保健养生', '职称：医师', '注:数据来自爱奇艺(每日凌晨扣除前日非正常流量)', '1',
'下载知乎客户端 与世界分享知识、经验和见解', '答案创立者', '活动截止:2100-01-01', '相关文章推荐', '文章 阅读', '相关推荐', '拍照搜题，秒出答案，一键查看所有搜题记录',
'暂无评价|0人阅读|0次下载|举报文档', '下载APP,免费快速问医生', '该经验图片、文字中可能存在外站链接或电话号码等,请注意识别,谨防上当受骗!', '-',
'看病 男科 妇科 癫痫 性病 养生 新闻 白癫风 牛皮癣', '最佳答案', '评论排序: 最新 最热', '王浩', '职称：医生会员', '工艺相似', '注意事项：', '您需要登录后才可以回帖 登录 | 立即注册', '5',
'疾病：', '企业信用信息', '还没有人评论,点击抢沙发～', '口味相似', '责任编辑：', '注意事项', '数学', '贴吧页面意见反馈 贴吧严厉打击互联网淫秽色情信息 贴吧垃圾信息处理公示',
'整形 整形项目 整形案例 整形资讯 整形医院 减肥塑形 眼部整形 鼻部整形 面部整形', '0', '不知道下面这条知识能否帮助到您', '免费咨询', 'END', '我来回答', '医生', '热门评论:', '步骤/方法：',
'综合热点资讯', '6', '顶', '问', '点亮12星座印记,去领取', '职称：主治医师', '方法/步骤', '相关推荐:', '这不是个问题 这个问题分类似乎错了 这个不是我熟悉的地区', '游民星空联运游戏', '表情',
'贴吧页面意见反馈 违规贴吧举报反馈通道 贴吧垃圾信息处理公示', '展开', '热门推荐', '就医 疾病信息 健康经验 症状信息 手术项目 检查项目 健康百科 求医问药', '来说两句吧.', '网友评论', '共2条医生回复',
'站外分享', '用药 药品库 疾病用药 药品心得 用药安全 药品资讯 用药方案 品牌药企 明星药品', '个性签名:该用户暂未添加个性签名', '相关阅读', '今日推荐', '疾病:', '本周推荐', '专家义诊',
'共3条医生回复', '最新评论', '陈海杰每周三', '更多&gt', '(四年装修行业经验)', '名称相似', '欢迎来到生意经！', '分享到：', '最满意答案', '新浪微博 QQ好友 QQ空间', '7',
'10秒闪电通过好友', '医院', '问题排行榜', '菜谱分类导航', '热门网游 热门单机', '医院出诊医生', '深窗公众平台', '查看评情>', '英语', '装修管家将回电您,免费提供装修咨询服务', '欢迎访问',
'显卡吧', '稍候装修管家将回电您,免费提供装修咨询服务', '医生在线免费咨询', '图文推荐', '育儿网专家团', '小编推荐', '评论加载中,请稍候.', '追问：', '关注花粉俱乐部', '一周热点攻略',
'共4条医生回复', '花粉随手拍', '90%当天通话,沟通充分!', '回复帖子', '版块推荐', '24小时排行榜', '最新安卓游戏排行', '《川西高原》', '红枫', '潜伏', '墨荷墨荷',
'微信加好友 获取详细报价', '去查看', '找好玩手机游戏,上 4399游戏盒', '花粉客户端官方', '老茶馆众生', '音乐播放器官方', '店铺优化排查提升2倍流量', '更多',
'有问必答 内科 外科 儿科 药品 遗传 美容 检查 减肥 中医科 五官科 传染科 体检科 妇产科 肿瘤科 康复科 子女教育 心理健康 整形美容 家居环境 皮肤性病 营养保健 其他科室 保健养生', '你好', '标签：',
'提问者采纳', '开启辅助访问', '.', '因材料品牌及工程量不同,具体报价以量房实测为准', '该答案已经被保护', '…', '功效 护肝 养心 补肾 养胃 丰胸 排毒 补血 补钙 提高免疫力', '—', '8', '分享',
'百度经验 > 职场/理财 > 投资理财', '分享：', '单机游戏下载 更多', '今日热门帖子推荐', '您需要登录后才可以评论,登录| 注册', '阅读排行', '没有最新动态', '回复：', '文章内容导航', '编辑推荐',
'个人资料', '相关文章', '工具下载', '评论0条', '最新更新栏目', '推荐阅读', '为您推荐：', '向左转向右转', '菜谱分类推荐', '9', '时令食材 南瓜 莲藕 山药 螃蟹 冬瓜 茄子',
'直购热线:400-6666-800', '头图加载中.', '望采纳', '作者近期文章', '两性 皮肤科 医学 健客动态', '下载寻医问药APP', '举报', '分享让生活更美好', '查看论坛全部版块>', '投诉',
'职称：副主任医师', '您需要登录后才可以回复,请 登录 或者立即注册', '类型:角色扮演', '文章分类', '擅长&nbsp 店铺优化向TA提问', '病情描述：', '游戏入库/用户福利合作请联系:', '最新 最热',
'温馨提示:以上经验分享由网友原创,仅供参考,未经许可禁止转载,违者必究', '欢迎加入单机游戏QQ群:176097074', '最新活动 更多+', '文章存档', '百度经验 > 职场/理财 > 公务办理', '相关推荐：',
'扫描二维码下载', '本类推荐 本类排行', '推荐文章', '找法网订阅号', '向专家医生提问专业医生在线,十分钟内快速回复!', '3亿+用户的选择', '推荐专题', '评论排行', '猜你在找', '立即下载',
'职称：护士', '步骤', '传奇最经典网页版,多人团战跨服竞技玩法冰火战场,十年最经典游戏,英雄合击,3D特效绚丽,赶紧注册试玩一下, >', '10', '安装好游快爆,资讯随身看', '-来自助手版贴吧客户端', '↑扫描二维码',
'全国三甲医院,主任级名医在线坐诊已有124家三甲医院,828位主任医师在线答疑', '共1条医生回复', '物理', '热门软件 热门标签', '您可能还喜欢', '仙境传说WIKI', 'lol吧', '两性养生', '人群养生',
'百度经验 > 职场/理财 > 创业指导', '查看更多 ↓', '生活养生', '中医养生', '微信号:sj4399', '魔兽玩家吧', '分享给朋友:', 'TechWeb官方微博:', '=', '运动养生',
'乐享非凡 乐享知识', '谢谢', '如题', '限爱奇艺安卓6.0以上版本', '？', '相关阅读:', '1.75亿学生的选择', '迸发 中文版', '不知道', '字体:', '请关注TechWeb官方微信公众帐号:',
'热门文章', '最新文章', 'PC版', '阅读 ()', '热点内容', '搜索"8090网页游戏"', '边距:', '领礼包 新游表', '还原:', '背景:', '热门排行 最新', '数据统计中,请稍等!', '化学',
'该用户从未签到', '帮助与生活法律热点常识;', 'Make it Possible', 'Make your device special', 'Huawei cloud services', '网游排行 单机 腾讯',
'Huawei Music', 'Huawei Vmall', '热门推荐攻略', '装修顾问-馨馨 4年行业经验,24h可咨询', '游戏语言:简体中文', 'RT', '医生询问：', '图拉丁吧', '扫描关注游侠网',
'中国婴幼儿颜究社', '我们都是秋葵控 28款暖身滋补汤 "大姨妈"驾到 啥招待 雾霾必备:清肺食谱 假日饮食健康必读 换季食疗抗感冒', '简介', '类型: 言情小说 大小:12.00MB', '同问', '共5条医生回复',
'广告', '推荐图文', '按赞同数排序', '}', '你好！', '个性签名:丰富自己,帮助他人;欢迎关注', '精彩推荐', '转载请注明“18183”字样 收藏文章', '同求', '推荐阅读：', '相关教程：',
'扫描下载二维码', '笑话大全爆笑版 幽默笑话大全 全球冷笑话精选', '一周热点资讯', '-分隔线-', '绝对征服 免安装版', '本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!',
'没有安装爱奇艺视频最新客户端?点击安装', '知识点相关讲解', '华为商城官方', '《魔法禁书目录》开测 安趣网一周新游预告', '您好', '您需要 登录 才可以下载或查看,没有帐号?注册', '地下城与勇士吧', 'dd',
'相关新闻', '热门软件 热门关键字', '随时随地查附近维修点', '精彩知识在知道', '相关资讯', '好评数', '工具/原料', '精选优质答案', '华为云服务官方', '律师回答', '您还没有账号? 立即注册',
'吧友热玩游戏排行', '使用以下帐号登录可以保存关注记录,更方便', '应用吧活动,去领取', '请选择', '前排', '微信账号登陆', '您好！', '收藏', '帮助人数', '擅长：全科', '有用(0)没帮助(0)',
'百度经验 > 健康/养生 > 医疗健康', '各薪酬区间占比', '故障分布比例图', '职称：', '相关博文推荐博文', '没有', '还没有评论,快来抢沙发吧!', '其他安卓下载', '官方推荐下载',
'4399手游官方微信(微信号:sj4399)要你好玩,要你好看!独家礼包,新鲜爆料!', '来源:正解网', '呵呵', '个性签名:喜欢生活热爱经验', '相似优质问题答案', '专长：高血压、糖尿病、心血管疾病',
'您还没有观看任何视频', '微信扫一扫绑定/登录', '下载就医助手APP随时随地抢约专家', '这条回答是否对问题没有帮助?', '职业指导/交流 小组 职场分析师 职场法规 安全求职 HR助手 官方APP', '确认密码:',
'热门教程推荐', '新密码:', '腾讯客服', '相关热门职位招聘', '下载看准官方APP', '相关文章 最新更新', '李毅吧', '相关Live 推荐', '开服表 游戏官网 进入游戏 新手礼包 游戏充值',
'来自豆瓣App', '提示：支持键盘“← →”键翻页阅读全文', '正文已结束,您可以按alt+4进行评论', '时间 投票', '11', '小编推荐:', '所就诊医院科室：', '扫描右侧二维码下载好游快爆,您可以',
'[ 热门专区 ]', '咨询实录', '少年西游记游乐园专题', '帮顶', '手游播报:端午节将至 大批IP手游上线', '上学吧公众号', '猜你喜欢', '1/2 相关文档推荐', '知识点疑惑描述', '热门英雄排行',
'关注看准官方微信', '暂无相关推荐文档', '哦', '修改器 补丁 存档', '· 掌握好玩新游资讯· 查找热门手游攻略· 强大工具助你成功', '主料', '您需要登录后才可以回帖 登录', '热门推荐TOP10',
'扫描二维码,手机查看本帖', '最受欢迎区域:', '路过', '医生回答', '更多同类菜谱', '与医生电话交流 开始 网上免费问医生开始', '文章搜索', '请输入搜索关键词', '分享到微博?', '可以',
'0有同感邀请回答收藏', '今日热词', '手机:', '热门专题', '百度移动游戏玩家均可认证(限百度账号),去领取', '邀请回答', '数据来源:全网公开的评论和销量数据', '正在加载中.',
'热门科室 ABCDE FGHI JKLM NOPQ RST UVW XYZ', '周热门新闻', '答：', '个性签名:百度经验特约作者、导师', '新手提示：', '点击排行', '希望采纳', '列表网公众号',
'解决方法：', '十五字十五字十五字十五字十五字', '预约挂号 专家转诊 绿色通道(含约号)', '已解决', '找工作 搜索职位 应届生招聘 兼职招聘 实习生招聘 暑假工招聘 面试题', '请选择您家的装修时间',
'时间 游戏名 游戏状态 领号', '今日推荐 本周推荐 热门推荐', '加载更多答主', '烘焙 面包 饼干 曲奇 蛋糕 吐司 披萨 月饼', '装修怕上当?问问靠谱的人', '刘宝华主任医师', '方式2:一键下载至手机',
'杨玉雯主任医师', '状态：就诊前', '嗯', 'rt', '报价短信已发送到您的手机', '相关词典网站:', '暂无评价|0人阅读|0次下载', '辅料', '区域:', '遇到问题请联系在线客服QQ:2323965869',
'请遵守天涯社区公约言论规则,不得违反国家法律法规回复(Ctrl+Enter)', '品 牌:其它品牌', '关于 关于我们 联系我们 加入我们 开放收录 企业入驻 企业推广 用户反馈', '手机扫描下载', '其他住宿区域:',
'刘颖副主任医师', '收藏此页订阅到邮箱', '求采纳', '互联网相关知识', '人群 幼儿 婴儿 儿童 宝宝 孕妇 产妇 母婴 老人', '想第一时间看独家爆料和深度报道吗?', '食材', '排名主要依据全网销量和口碑',
'手机助手官方', '更多0', '列表网公众号列表活动随时有扫我活动不错过', '掌上预约挂号、问医生、用药查询,与万千病友交流', '周 月', '电影吧', '热点推荐', '扫一扫直接下载', '关闭',
'关注微信STAR星贝阅读', '概 述', '姓名:', '娱乐聚焦 TOP10', '点击下载按钮,或扫描二维码直接下载!', '相关专题', '最新相关试卷', '常用邮箱: 用于找回密码', '布衣采纳率:0%回答时间：加关注',
'看看', '栏目最新', '恭喜您!升级VIP会员成功 账号: 密码:', '大家都在看…', '热门相关试卷', '分享此文', '推荐阅读:', '我举报', '+ 加载更多新闻', '因不能面诊，医生的建议及药品推荐仅供参考',
'推荐内容', '题目', '已回复', '所属话题:给问题添加话题有助于更快获得解答', '1028988份文档', '求解', '评分:8.0分', '哈哈', '爆笑图片汇集 搞笑图片乐翻人 cs3简单制作动态搞笑图片',
'发消息', '医生回答(2)', '布衣采纳率:100%回答时间：加关注', '穿越火线吧', '0我分享', '0我收藏', '个性签名:软件架构师,IT经验丰富!', '我', '《全民超神》手游专题', '不错', '取消编辑',
'分享到', '《大话西游手游》手游专题', '相关游戏', '48小时热门文章', '意见建议：', '按地区找:', '赶快扫一扫吧~', '热门新闻', '具体方法如下:', '1.', '提交成功!请静静等待老鸟们回答~',
'您可能有同感的问题', '自顶', '个性签名:芳筵银烛一相见浅笑低鬟初目成', 'windows7吧', '最新上传套卷', '咨询采纳', '职称：主任医师', '微信扫一扫分享', '2016高考真题',
'【新手开店】新手没经验没货源一样开店赚钱', '职称:医生会员', '查找最新优惠', '←扫一扫关注“k73手游”', '安卓下载 IOS下载', '历年模拟试卷', '0问得好', '下载地址', '同类推荐下载', '搜索',
'其他', '执业认证手机认证', '特征:竞技', '评论', '下载安居客APP', '获取动态密码', '百度经验 > 手工/爱好 > 书画/音乐', '购车经销商', '短信快捷登录', '方法二：', '方法一：',
'扫描二维码 关注官方微信', '微信扫一扫免费秒领礼包', '2016', '蛋蛋娃娃 人家才不是呆萌呢—蛋蛋娃娃', '温馨提示：', '百度', '相关链接:',
'查工资 薪酬搜索 看趋势 趋势搜索 大学生就业形势分析 最新职位 博士招聘 硕士招聘', '系统推荐', '单机排行 手游排行', '【', '您需要登录后才可以回帖 登录 | 立即入住', '看完这篇文章有何感受?',
'LPL2017夏季赛', '分享到微信朋友圈', 'hocok', '﹏', '！', '作者其他菜谱', '博客专栏', '场合 年夜饭 中秋节 元宵节 腊八节 端午节 重阳节 春季 夏季 秋季 冬季',
'百度经验 > 运动/户外 > 运动常识', '个性签名:百度经验资深作者', '职称：三级营养师', '请您不要关闭此页面,支付完成后点击支付完成按钮', '相关攻略推荐', '一周评论排行', '暖', '注册登录', '引用回复',
'匿名', '高清美图 更多+', '好', '微信', '注意事项:', '12', '精品单机攻略 手游网游攻略', '回复', '生活常识相关知识', '版权及免责声明', '不会', '拍照搜题,秒出答案,一键查看所有搜题记录',
'主食 面条 馒头 包子 炒饭 饼类 粉类 米线 饺子 盖饭 粥', '言情小说吧', '按科室类别找: 妇产科 内科 外科 儿科 皮肤科 肿瘤科 男科 整形外科', '惨死!女运动员跳高被爆菊身亡',
'色斑难袪?美白祛斑变女神 正确祛斑方法 让你轻松祛斑变美丽', '认证市民', '666', '百度经验 > 运动/户外 > 出行贴士', '相关问题', '近期游戏热闻', '楼上正解', '推荐招标', '被采纳',
'提问问题 添加到收藏', '下载网址：url_4287', '营业执照', '相关套图推荐', '相关阅读：', '注:网友评论仅代表个人看法,并不代表飞鹏网同意其观点或证实其描述', '向作者提问', '说明', '政治',
'向医生咨询相关问题', '游戏资费:免费', '个性签名:过去过不去都会过去', '小贴士', '抢免费设计名额', '工艺口味 炒 蒸 煮 电饭煲 微波炉 烤箱 酸 甜 辣', '从免费户型设计开始…', '工艺、口味相似',
'活动截止:2025-12-31', '电脑吧', '实名验证', '向我提问', '业务授权书', '争议', '简介：', '[题主采纳]', '生物学相关知识', '个性签名:vx:lovekingone77,百度推广',
'度假旅游相关知识', '想在手机上看科技资讯和科技八卦吗?', '经营许可证', '个性签名:身随意动,念至花开!', '验证码: 看不清,点击换一张 请输入验证码 请输入正确的验证码',
'网友交流QQ群 HR交流群:220540653 粤ICP备05102490号-1 粤公网安备 44010602001198号 在线客服', '百度新闻客户端', '广告载入中…', '问医生', '历史', '电子设备', '查看更多',
'官方QQ群号:273677969', '提问 小贴士:问题描述的越清楚,越能吸引老鸟来回答哟~', '开发:网易', '验证即登录,未注册将自动创建一起网帐号',
'选公司 公司搜索 公司排行榜 行业招聘 外企招聘 500强招聘 酷公司 照片专辑', '个性签名:百度经验,为生活献计献策!', '我的游戏 推荐游戏', '游戏类型:角色扮演', '?',
'—来自 爱贴吧 Windows Phone 客户端', '找法网认证系统', '推荐资讯', '工资收入: (月薪/元) 请填写数字!', '感谢反馈,谢谢', '梦幻西游吧',
'推荐 限时优惠 热门团购', '第1页：', '爱卡团 爱卡团购,劲爆折惠福利,卡友专享!'
}


# -------------- 去除不相关 para 的影响比例 -----------------
# train search: para_count: 6874089, influence_count: 256617, ratio: 0.037331055795175185
#  dev  search: para_count: 202755,  influence_count: 9587,   ratio: 0.04728366748045671
#  test search: para_count: 1521524, influence_count: 50633,  ratio: 0.0332778188185004
# train zhidao: para_count: 1688050, influence_count: 5380,   ratio: 0.003187109386570303
#  dev  zhidao: para_count: 53498,   influence_count: 177,    ratio: 0.0033085348985008784
#  test zhidao: para_count: 401629, influence_count: 1481, ratio: 0.003687482726595938

def remove_not_related_paras(sample):

    # ------------------- text normalize -------------------
    sample['segmented_question'] = normalize(sample['segmented_question'])
    for doc in sample['documents']:
        doc['segmented_paragraphs'] = [normalize(seg_para) for seg_para in doc['segmented_paragraphs']]

    if 'segmented_answers' in sample:
        sample['segmented_answers'] = [normalize(answer) for answer in sample['segmented_answers']
                                       if answer !=  [' '] and answer !=  ['']]

    # ------------------- remove not related paras -------------------
    # 去掉不相关的 para，遍历每个doc 的每个 doc，判断是否在 not_related_para_dict 中，如果在则删除para和对应的score等字段
    for doc in sample['documents']:
        remove_ids = []
        for para_id, para in enumerate(doc['segmented_paragraphs']):
            if ''.join(para) in not_related_para_dict:
                remove_ids.append(para_id)

        # 删除不相关的para和对应的特征和score等
        doc['segmented_paragraphs'] = [doc['segmented_paragraphs'][i] for i in range(len(doc['segmented_paragraphs']))
                                       if i not in remove_ids]
        doc['pos_paragraphs'] = [doc['pos_paragraphs'][i] for i in range(len(doc['pos_paragraphs']))
                                 if i not in remove_ids]
        doc['keyword_paragraphs'] = [doc['keyword_paragraphs'][i] for i in range(len(doc['keyword_paragraphs']))
                                     if i not in remove_ids]
        doc['paragraphs_word_in_question'] = [doc['paragraphs_word_in_question'][i] for i in range(len(doc['paragraphs_word_in_question']))
                                              if i not in remove_ids]

    return sample

if __name__ == '__main__':
    for line in sys.stdin:
        if not line.startswith('{'):
            continue

        sample = json.loads(line.strip())
        sample = remove_not_related_paras(sample)
        print(json.dumps(sample, ensure_ascii=False))
